/*
  学习目标：setState小结
  语法：
  1. setState({})
    场景：✅最常用，不需要连续调用setState，用对象即可最简单
    特点： 连续调用，会产生覆盖效果
  2. setState((旧的state) => 新的state)
    场景：✅需要根据上一次的计算结果， 计算下一次的值
    特点：连续调用，会产生串联等待上次计算结果的效果
  3. setState({}, () => {})
    场景： 👎需要根据上一次的计算结果， 计算下一次的值
    特点： 不会产生合并效果， 容易浪费性能。 2. 容易回调地域
*/

import React, { Component } from 'react';

export default class App extends Component {
  state = {
    count: 0,
  };

  handleClick = () => {
    const { count } = this.state;

    this.setState({ count: count + 1 }, () => {
      this.setState({ count: count + 2 }, () => {
        this.setState({ count: count + 3 });
      });
    });
  };
  render() {
    const { count } = this.state;
    console.log('count  ----->  ', count);
    return (
      <div>
        <h1>{count}</h1>
        <button onClick={this.handleClick}>点我+1</button>
      </div>
    );
  }
}
